package com.cxx.admin.util;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class BlogUtils {
    /**
     * 博客概要字数
     */
    private static final Integer BLOG_SUMMARY_COUNT = 100;

    /**
     * 阅读速度 600 字/分钟
     */
    private static final Double READ_SPEED = 600.0;

    /**
     * 博客非统计字符
     */
    private static final List<Character> excludeChart = new ArrayList<>(Arrays.asList(' ', '\n', '\t'));

    /**
     * 获取文本字数
     *
     * @param str 文本
     * @return 字数
     */
    public static Integer getWordCount(String str) {
        Integer count = 0;

        if (null == str || str.isEmpty()) {
            return count;
        }

        for (int i = 0; i < str.length(); i++) {
            char tmp = str.charAt(i);
            if (!excludeChart.contains(tmp)) {
                count++;
            }
        }

        return count;
    }

    /**
     * 获取阅读时长 单位：分钟
     *
     * @param wordCount 文本字数
     * @return 阅读时长
     */
    public static Double getReadDuration(Integer wordCount) {
        return wordCount / READ_SPEED;
    }

    /**
     * 获取简要信息
     *
     * @param content 博客内容
     * @return 简要信息
     */
    public static String getBlogSummary(String content) {
        if (content.length() > BLOG_SUMMARY_COUNT) {
            return content.substring(0, BLOG_SUMMARY_COUNT);
        }

        return content;
    }

    public static String getHexTimeStamp() {
        return Long.toHexString(System.currentTimeMillis());
    }
}
